package com.example.demo.constants;

/**
 * Constants
 *
 * @author hao.chen
 * @date 2023/5/30 9:45
 */
public interface Constants {
    // ------------------命名------------------
    /**
     * 日志保留时间
     */
    String LOG_MAX_HISTORY = "LOG_MAX_HISTORY";
    /**
     * 开始时间
     */
    String BEGIN_TIME = "beginTime";
    /**
     * 原始请求URI
     */
    String ORIGINAL_REQUEST_URI = "originalRequestURI";
    /**
     * 苹果
     */
    String IOS = "iOS";
    /**
     * 安卓
     */
    String ANDROID = "Android";

    // ------------------授权------------------
    /**
     * WEB后台登录
     */
    String LOGIN_SOURCE_WEB = "WEB";
    /**
     * APP登录
     */
    String LOGIN_SOURCE_APP = "APP";
    /**
     * H5登录
     */
    String LOGIN_SOURCE_H5 = "H5";
    /**
     * jwt访问签名
     */
    String JMT_AUTH_HEADER = "Authorization";
    /**
     * jwt令牌前缀
     */
    String JMT_TOKEN_PREFIX = "Bearer ";
    /**
     * jwt用户id
     */
    String JMT_USER_ID = "userId";
    /**
     * jwt用户名
     */
    String JMT_USER_NAME = "userName";
    /**
     * jwt令牌范围
     */
    String JMT_SCOPES = "scopes";
    /**
     * jwt令牌发行人
     */
    String JMT_TOKEN_ISSUER = "https://api.example.com";
    /**
     * AccessToken 过期时间
     */
    Long ACCESS_TOKEN_EXPIRATION = 2 * 60 * 60L;
    /**
     * RefreshToken 过期时间
     */
    Long REFRESH_TOKEN_EXPIRATION = 7 * 24 * 60 * 60L;
    /**
     * jwt令牌续期时间
     */
    Long JWT_TOKEN_REFRESH_TIME = 6 * 60 * 60L;
    /**
     * jwt令牌私钥
     */
    String JMT_TOKEN_SIGNING = "ZmotYXBpLWdhdGV3YXktdG9rZW4tc2VjcmV0LWtleQ==";

    // ------------------系统------------------
    /**
     * 环境 dev：开发
     */
    String ACTIVE_DEV = "dev";
    /**
     * 环境 test：测试
     */
    String ACTIVE_TEST = "test";
    /**
     * 环境 pre：预发布
     */
    String ACTIVE_PRE = "pre";
    /**
     * 环境 prod：生产
     */
    String ACTIVE_PROD = "prod";
    /**
     * 限流秒
     */
    String INVOKE_LIMIT_SECONDS = "invoke_limit_seconds:";
    /**
     * 限流分钟
     */
    String INVOKE_LIMIT_MINUTES = "invoke_limit_minutes:";
    /**
     * sud 游戏说明
     */
    String SUD_GAME_EXPLAIN = "sud_game_explain";

}
